1. Field of the Invention
Embodiments of the disclosure relate in general to the field of computers and similar technologies, and in particular to software utilized in this field. Still more particularly, it relates to discovering the topology of a network.
2. Description of the Related Art
The growth of the Internet, combined with the recent popularity of applications such as streaming video, streaming audio, and large aggregations of voice over Internet protocol (VOIP) traffic, has resulted in a growing demand for network bandwidth and availability. To meet these demands, additional switches, bridges, and hubs are being deployed in ever-increasing numbers. As a result, the amount of network infrastructure to be managed will continue to grow. The effective management of network elements requires accurate and up-to-date knowledge of the network's topology, which is a representation of its nodes and their connections to each other. Knowledge of the topology of a network's elements is generally a prerequisite for many network management tasks, including reactive and proactive resource management, performance evaluation and optimization, flow control, event correlation, and root cause analysis of service faults. However, discovering information about the topology of a network more challenging as the size of the network grows.
Approaches to discovering a network's topology include the use of a discovery agent that performs a graph traversal of the network's elements, collecting information about each node in a network and its connections to other nodes. The discovery process begins with the agent being provided a set of known nodes in the network. With probes, such as simple network management protocol (SNMP) queries, or by reading routing table information, the agent discovers links flowing outward from the known portions of the graph. The agent then finds the nodes that belong to the other side of that link. The process continues until no more links remain to be explored.
There are two key performance indicators of the discovery process, the first being the time it takes to discover the network and the second being the number of probe messages that are sent to the network nodes. The most efficient discovery process would send only one probe message per node. With a single discovery agent, the time taken to discover the network is the sum of the response time for each probe message. In a large network of thousands, or tens of thousands, of network nodes, such a graph traversal can consume a significant amount of time. The time required to perform the graph traversal can be reduced if multiple agents can operate in parallel to discover and traverse the graph in parallel. However, such parallel discovery may result in sending multiple probe messages to each of the different nodes. As a result, unless properly coordinated, multiple node discovery agents working in parallel would not result in a reduction of the time spent to discover the network's topology.